セキュリティグループを作成・編集する
セキュリティグループ
AWSのセキュリティグループは、VPCにおけるファイアウォールの設定を管理するための機能です。
セキュリティグループは、EC2インスタンスやRDSデータベースなどのAWSリソースに関連付けられ、ネットワークトラフィックを制御する役割を果たします。
要するに、通信の内容を見てそれがルールによって許可されて入ればスルーし、そうでない場合はブロックするといった機能です。 ただし、ポート番号といったTCP/UDPレイヤーまでの中身だけです。(HTTP通信の中身などは見ない)
セキュリティグループは、インバウンドトラフィック(入力)およびアウトバウンドトラフィック(出力)の許可または拒否を管理します。特定のプロトコル(TCP、UDP、ICMPなど)やポート番号、IPアドレス範囲に基づいてトラフィックを制御するためのルールを定義することができます。
ちなみに、セキュリティグループはステートフルなファイアウォールなため、復路の通信が自動的に許可されます。例えば、インバウンドで許可をするとその応答となるパケットはファイアウォールは通過します。
セキュリティグループの作成
セキュリティグループはVPCのページから作成可能です。
今回は「sample-web-sg」という名前で作成します。 このとき作成するVPCはSGを適用したいリソースがある場所にします。
また、デフォルトではすべてのIPに対してアウトバウンドが許可されています。 つまりは、デフォルトで設定すれば「サーバー -> インターネット」へのアクセスは許可されているといった形です。 他のルールは次に設定するのでここでは設定しません。
ルールの編集
ここではインバウンドルールの編集を行います。 これは、インターネットなどの外部からサーバーへのアクセスを許可するためのルールです。 セキュリティグループではインバウンド、アウトバウンドの両方の設定がありますがどちらも方法は同じです。
VPCのセキュリティグループの画面から、テキストボックに先程作成したセキュリティグループ名「sample-web-sg」を入れて絞り込みます。
その後、「インバウンド」のタブより「インバウンドルールの編集」をクリックします。
ルールの追加ボタンを押すとSGのルールを追加することができます。
ここでは以下の3つを設定しました。
- すべてのIPアドレスからのTCP 80番ポートへのアクセスを許可
- 別のセキュリティグループからのICMPのアクセスを許可
- 特定のプレフィックスリストからのRDPのアクセスを許可
セキュリティグループでは以下のルールが設定可能です。
- タイプ: TCP,UDP,ICMP,その他よく使われるプロトコル(SSH,RDPなど)
- プロトコル: TCP, UDP, ICMPなどのプロトコル(カスタムプロトコルを使用する場合に設定)
- ポート番号: TCP,UDPのポート番号(RDPなどの決まったポートのタイプを選んだ場合は自動で入力される)
- ソース: 通信元以下のタイプが有る
- Anywhere-ipv4, Anywhere-ipv6: すべてのIPを許可する
- マイIP: 自分のIPアドレスを入力してくれる便利機能
- カスタム: 以下を設定可能
- CIDRブロック: CIDRを指定し許可するIPを指定
- セキュリティグループ: 特定のセキュリティグループが割り当てられているリソースからの通信を許可
- プレフィックスリスト: 複数のCIDRをまとめたプレフィックスリストに含まれるCIDRからの通信を許可
セキュリティグループの特に便利な機能としてはセキュリティグループをソースに設定することができる点です。 IPを意識せずともセキュリティグループのみを考えれば良くなります。
※ここでは「説明」に説明のために日本語を入れていますが、英数字といくつかの記号のみが許可されています。
最後に
セキュリティグループの作成・編集の方法について整理しました。 EC2などで使う機会が多いかと思うので使いこなせると便利かと思います。